import store from '@/vuex/index'
// const log_error = log.bind(console, "AJAX Error ->")
// const log_line = log.bind(console, '------------------------ AJAX BUG------------------------')

//  不携带 cookie
export function request_get(url, data) {
	return $.get(url, data)
}
export function request_post(url, data) {
	return $.post(url, data)
}

export function request_ajax(url,data, methods="get",async='true',) {
	return $.ajax({
		url,
		data,
		type: methods,
		async:async,
		success: function (res, status, xhr) {
			return res
		}
	})
}

// 登录，保存 jwt
export function request_login(url, data) {
	return $.ajax({
		url,
		data,
		type: 'post',
		success: function (res, status, xhr) {
			var token = xhr.getResponseHeader("Jwt");
			log('登录获取到的jwt', token)
			if (token) {
				// 约2小时，小于服务端缓存时间
				setCookie('_token', token, 0.08);
			}
			return res
		}
	})
}

export function request_isLogin(url, data="", type="post", async='true') {
	return $.ajax({
		url,
		data,
		type: type,
		async: async,
        beforeSend: function(XMLHttpRequest){
            var token = getCookie('_token');
            if (token) {
                XMLHttpRequest.setRequestHeader("Jwt", token);
            }
			// log('当前的cookie:', document.cookie)
        },
		success: function (res, status, xhr) {
			return res
        },
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			$('#error').modal('show')
			$('#errorinfo').html('请求失败,请重试')	
			log_line()
			log_error('url: ', url)
			log_error('data: ', data)
			log_error('readyState: ', XMLHttpRequest.readyState );
			log_error('状态码: ', XMLHttpRequest.status);
			log_error('状态码信息: ', XMLHttpRequest.statusText );
			log_error('服务器响应文本: ', XMLHttpRequest.responseText );
			log_error('服务器返回状态: ', XMLHttpRequest.readyState);
			log_error('服务器抛出返回的错误信息: ',textStatus);
			log_line()
   		},
	})
}

// 用户相关操作使用接口，携带 jwt header 验证。
export function request_user(url, data="", type="post",async='true') {
	return $.ajax({
		url,
		data,
		type: type,
		async: async,
        beforeSend: function(XMLHttpRequest){
            var token = getCookie('_token');
            if (token) {
                XMLHttpRequest.setRequestHeader("Jwt", token);
            }
			// log('当前的cookie:', document.cookie)
        },
		success: function (res, status, xhr) {
			if (res.code == 1 && res.msg == '请先登录') {
			// if (res.code == 1) {
				$('#id-user-login').modal('show')
				log('没有登录', res)
				return res
			}
			return res
        },
		error: function(XMLHttpRequest, textStatus, errorThrown) {
			$('#error').modal('show')
			$('#errorinfo').html('请求失败,请重试')	
			// log_line()
			// log_error('url: ', url)
			// log_error('data: ', data)
			// log_error('readyState: ', XMLHttpRequest.readyState );
			// log_error('状态码: ', XMLHttpRequest.status);
			// log_error('状态码信息: ', XMLHttpRequest.statusText );
			// log_error('服务器响应文本: ', XMLHttpRequest.responseText );
			// log_error('服务器返回状态: ', XMLHttpRequest.readyState);
			// log_error('服务器抛出返回的错误信息: ',textStatus);
			// log_line()
   		},
	})
}
// export function request_user_async(url, data="", type="post") {//同步请求
// 	return $.ajax({
// 		url,
// 		data,
// 		type: type,
// 		async:false,
//         beforeSend: function(XMLHttpRequest){
//             var token = getCookie('_token');
//             if (token) {
//                 XMLHttpRequest.setRequestHeader("Jwt", token);
//             }
// 			// log('当前的cookie:', document.cookie)
//         },
// 		success: function (res, status, xhr) {
// 			return res
//         },
// 		error: function(XMLHttpRequest, textStatus, errorThrown) {
// 			log_line()
// 			log_error('url: ', url)
// 			log_error('data: ', data)
// 			log_error('readyState: ', XMLHttpRequest.readyState );
// 			log_error('状态码: ', XMLHttpRequest.status);
// 			log_error('状态码信息: ', XMLHttpRequest.statusText );
// 			log_error('服务器响应文本: ', XMLHttpRequest.responseText );
// 			log_error('服务器返回状态: ', XMLHttpRequest.readyState);
// 			log_error('服务器抛出返回的错误信息: ',textStatus);
// 			log_line()
//    		},
// 	})
// }
